package xyz.ibenben.zhongdian.system.form;

import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang.StringUtils;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.entity.Example.Criteria;
import xyz.ibenben.zhongdian.system.entity.ChatRecord;
import xyz.ibenben.zhongdian.system.entity.enums.ChatTypeEnum;

/**
 * 聊天记录查询条件类
 * 提供了对内容,聊天类型等字段的查询。
 * 并使用Example把所得到的结果整合为实例，最后通过服务实现类调用数据库查询结果
 *
 * @author chenjian
 * @since 2017年9月27日上午10:57:28
 */
@Setter
@Getter
public class ChatRecordForm extends SearchForm{
	private static final long serialVersionUID = -2465644184106576265L;

	/* 内容 */
	protected String content;

	/* 聊天类型 1 聊天室 2私聊 */
	protected ChatTypeEnum type;

	/* 发送者 */
	protected Long fromId;

	/* 接收者 */
	protected Long toId;

	/**
	 * 构造实例
	 * @return 返回值
	 */
	@Override
	public Example buildSearchCommond() {
		Example example = new Example(ChatRecord.class);
		Criteria criteria = example.createCriteria();
		if(fromId != null){
			//根据发送者查询
			criteria.andEqualTo("fromId", fromId);
		}
		if(toId != null){
			//根据接收者查询
			criteria.andEqualTo("toId", toId);
		}
		if(type != null){
			//根据类型查询
			criteria.andEqualTo("type", type);
		}
		if(StringUtils.isNotBlank(content)){
			//根据内容模糊查询
			criteria.andLike("content", "%" + content + "%");
		}
		return example;
	}

}
